@强制输出
@导入Java("android.widget. *")
@导入Java("android.os. *")
@导入Java("android.app. *")
@导入Java("android.content. *")
@导入Java("android.content.res. *")
@导入Java("android.view. *")
@导入Java("android.view.View. *")
@导入Java("android.view.ViewGroup. *")
@导入Java("android.webkit. *")
@导入Java("android.graphics. *")
@导入Java("android.graphics.drawable. *")
@导入Java("android.media. *")
@导入Java("java.io. *")
@导入Java("java.util. *")
@导入Java("com.hengx.view.lrcView.*")
@外部Java文件("../Java/PlayerInterface.java")
类 歌曲播放器

	@code
	private MediaPlayer player;
	private Timer mTimer;
	private TimerTask mTimerTask;
	private Handler handleProgress;
	private boolean autoPlay = true;
	private PlayerInterface mPlayerInterface;
	
	public #<歌曲播放器>() {
	player = new MediaPlayer();
      mTimer = new Timer();
      player.setAudioStreamType(AudioManager.STREAM_MUSIC);
      player.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener(){
         @Override
         public void onBufferingUpdate(MediaPlayer p1, int p2){
            #正在缓冲(p2);
         }
      });
      player.setOnPreparedListener(new MediaPlayer.OnPreparedListener(){
         @Override
         public void onPrepared(MediaPlayer p1){
            if (autoPlay) {
               if(p1.isPlaying()){
                  p1.stop();
                  p1.start();
               }else{
                  p1.start();
               }
            }
            #缓冲完毕();
         }
      });
      player.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){
         @Override
         public void onCompletion(MediaPlayer p1) {
            #播放完毕();
         }
      });
      mTimerTask = new TimerTask() {
         @Override
         public void run(){
            if (player == null)
            return;
            if (player.isPlaying()){
               handleProgress.sendEmptyMessage(0);
            }
         }
      };
      mTimer.schedule(mTimerTask, 0, 1);
      handleProgress = new Handler() {
         public void handleMessage(Message msg){
            if(mPlayerInterface != null){
               mPlayerInterface.onPlay(#取当前播放位置());
            };
            #正在播放();
         };
      };
   }
   public void setPlayerInterface(PlayerInterface l){
      this.mPlayerInterface = l;
   }
   public MediaPlayer getMediaPlayer() {
 	  return player;
   }
	@end
	
	//设置播放器是否循环播放
   属性写 循环播放(是否循环播放 为 逻辑型)
      code player.setLooping(#是否循环播放);
   结束 属性

   //获取播放器是否循环播放
   属性读 循环播放() 为 逻辑型
      code return player.isLooping();
   结束 属性


   //设置播放歌曲的路径，可以为本地路径，也可以为网络路径,第二个参数为是否自动播放，表示加载完成后是否自动播放
   @附加权限(安卓权限.文件权限_读取)
   @附加权限(安卓权限.网络权限)
   方法 设置播放路径(路径 为 文本, 是否自动播放 为 逻辑型 = 假)
      @code
      this.autoPlay = #是否自动播放;
      player.reset();
      try {
         player.setDataSource(#路径);
         player.prepareAsync();
      } catch (Exception e) {
         e.printStackTrace();
      }
      @end
   结束 方法

   //开始播放歌曲
   方法 开始播放()
      code player.start();
   结束 方法

   //暂停播放歌曲
   方法 暂停播放()
      code player.pause();
   结束 方法

   //停止播放歌曲
   方法 停止播放()
      code player.stop();
   结束 方法

   //获取音乐总时长
   方法 取歌曲总时长() 为 整数
      code return player.getDuration();
   结束 方法

   //获取当前播放位置
   方法 取当前播放位置() 为 整数
      code return player.getCurrentPosition();
   结束 方法

   //快进至指定位置
   方法 快进至(位置 为 长整数)
      code player.seekTo((int)#位置);
   结束 方法

   //设置播放的音量，分别设置左声道音量和右声道音量(0~100)
   方法 置音量(左声道音量 为 整数, 右声道音量 为 整数)
      code player.setVolume(((float)#左声道音量) * 0.01f, ((float)#右声道音量) * 0.01f);
   结束 方法

   //重置播放器
   方法 重置()
      code player.reset();
   结束 方法

   //释放资源
   方法 释放资源()
      code player.release();
   结束 方法

   //判断播放器是否在播放音乐
   方法 是否在播放() 为 逻辑型
      code return player.isPlaying();
   结束 方法
	
	//正在缓冲时触发该事件，返回缓冲进度
   定义事件 正在缓冲(进度 为 整数)

   //缓冲完成时触发该事件
   定义事件 缓冲完毕()

   //正在播放时触发该事件
   定义事件 正在播放()

   //播放完毕时触发该事件
   定义事件 播放完毕()

结束 类